package com.guodi.model.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.guodi.map.entity.MapDivision;
import com.guodi.model.entity.ApiIdtIndicatorsDir;
import com.guodi.model.entity.IdtIndicatorsDir;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @描述：指标目录表 Mapper 接口
 * @作者: 彭辉
 * @日期: 2020-06-05
 */
public interface IdtIndicatorsDirMapper extends BaseMapper<IdtIndicatorsDir> {

    /**
     * @描述:查询排序的最大值
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/10 11:49
     **/
    Integer selectMaxSort();

    /**
     * @描述:递归删除树节点下的所有数据
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/3 20:24
     **/
    void deleteByIds(String id);

    /**
     * @描述:根据ParentId删除记录
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/3 11:28
     **/
    void deleteByParentId(String id);

    /**
     * @描述:通过父节点获取所有的列表数据
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/10 17:14
    **/
    List<IdtIndicatorsDir> getAllByParentId(@Param("parentId") String parentId, @Param("orgId") String orgId);

    /**
     * @描述:通过父节点获取所有的列表数据
     * @入参:
     * @出参:
     * @作者: 郑文彬
     * @日期: 2020/6/10 17:14
     **/
    List<ApiIdtIndicatorsDir> listDirByCode(@Param("parentId") String parentId, @Param("orgId") String orgId, @Param("keyWord") String keyWord);

    /**
     * @描述:查询指标项数量
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/7/7 10:01
     **/
    Integer getIndicatorsCount(@Param("parentId") String parentId, @Param("orgId") String orgId, @Param("keyWord") String keyWord);

    /**
    * @描述:获取待删除类型为指标的数据集合
    * @入参:
    * @出参:
    * @作者: 代鹏刚
    * @日期: 2020/10/26 15:51
    **/
    List<String> findById(@Param("id") String id);
    /**
     * @作者: 林楷 2021/4/27
     * @描述: 根据指标名称获取子目录下模型有配置计算增速指标目录指标
     * @参数: name: 指标名称
     * @返回:
     */
    List<IdtIndicatorsDir> getGrowthRateByName(String name);

    /**
     * @描述: 获取下级行政区划
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/4/7 10:39
     **/
    List<MapDivision> getDivisionByParentcode(@Param("divisionCode") String divisionCode);

    /**
     * @描述: 查询指标体系的指定指标
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/4/25 16:50
     **/
    IdtIndicatorsDir getOneByParentId(@Param("indicatorsId")String indicatorsId, @Param("parentId")String parentId, @Param("orgId")String orgId);

    /**
     * @描述: 根据行政区划编码获取对象
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/5/31 15:51
     **/
    MapDivision getDivisionByCode(@Param("divisionCode") String divisionCode);
}
